package mensa;

import java.util.concurrent.Semaphore;

public class Kasse {
	private final int id;
	private Semaphore sem = new Semaphore(1, true);
        private int queueLength = 0;
	
	public Kasse(int id) {
		this.id = id;
	}
	
	public int getId() {
		return this.id;
	}
	
	public int queueLength() {
		return queueLength;//sem.getQueueLength();
	}
	
	public void addStudent(Student s) throws InterruptedException { //Wird nur von Studententhreads aufgerufen
                try {	
                    ++queueLength;
                    sem.acquire();
                    --queueLength;
                    //Wenn acquire, dann steht Student an der Kasse und will bezahlen
                    System.out.println("\t\t\t\t\tStundent " + s.id() + " bezahlt an Kasse " + id);
                    s.sleep(3000);
		} finally {
                    System.out.println("\t\t\t\t\t\t\tStundent " + s.id() + " hat bezahlt und isst jetzt");
                    sem.release();
		}
		
		
	}
}
